package com.augurit.gzcgwsp.commonex.util.lang;


import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;

import com.augurit.common.util.lang.StringUtils;

/**
 * 提供字符串方面的工具方法
 */
public class StringUtilsEX extends StringUtils {
	private static final Logger logger=Logger.getLogger(StringUtilsEX.class);
	public static String replaceEnter(String str){
		if(null != str && (str.indexOf("\r")>=0 || str.indexOf("\n")>=0)){
			String reg ="[\n-\r]";
			Pattern p = Pattern.compile(reg);
			Matcher m = p.matcher(str);
			return m.replaceAll(""); 
		}
		return str;
	}
	
    /**
     * 查询字符串是否含有某个字符串
     * @param str 字符串
     * @param regEx 查询的字符串
     * @return
     */
     public static  boolean checkRegEx(String str, String regEx) {
           boolean flag=false;
           try{
               Pattern p = Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
               Matcher m = p.matcher(str);  
               flag= m.find();
           }catch(Exception e){
             e.printStackTrace();
           }
          return flag;
       }
     
     /**
      * 格式化字符串
      * @param str
      * @return
      */
     public static String formatStr(String str){
    	 str = str.replace("<", "&lt;").replace(">", "&gt;").replace("&", "&amp;").replace("‘", "&apos;").replace("\"", "&quot;");
    	 return str;
     }
     public static void main(String[] args) {
    	 String str = "该广告位属广州市萧岗实业有限公司所有,属规划点位,现由广州市威领广告有限公司负责经营,设置证号为穗城管委户外广设字<2011>0004号,设置期限为2011年7月15日至2012年7月14日,设置类型为喷画射灯,规格为:4M*3M(两块),现申请续期,经核,提交材料齐全,但所设广告位非规划位置,且尺寸由规划的4M*3M(两块)变更为8M*6M(一块),是否给予续期,呈领导批示.";
    	 str = formatStr(str);
    	 System.out.println(str);
     }
     
     /**
  	 * base64加密
  	 * @param str
  	 * @param encoding
  	 * @return 加密后的字符串
  	 */
  	public static String base64Encode(String str,String encoding){
  		Base64 base64 = new Base64();
  		String encodeStr = "";
  		try {
  			encodeStr = new String(base64.encode(str.getBytes(encoding)));
  		} catch (Exception e) {
  			e.printStackTrace();
  		}
  		 return encodeStr;
  	}
  	
  	/**
  	 * base64解密
  	 * @param str
  	 * @param encoding
  	 * @return 解密后的字符串
  	 */
  	public static String base64Decode(String str,String encoding){
  		Base64 base64 = new Base64();
  		String decodeStr = "";
  		try {
  			//decodeStr = new String(base64.decode(str.getBytes()),encoding);
  			logger.info("str------------"+str);
  			decodeStr = new String(base64.decode(str.getBytes()));
  			logger.info("decodeStr------------"+decodeStr);
  		} catch (Exception e) {
  			e.printStackTrace();
  		}
  		return decodeStr;
  	}
  	
  	/**
  	 * 获取字符串里面的数字
  	 * @param str
  	 * @return
  	 */
  	public static String getStringNum(String str){
		String regEx="[^0-9]";   
		Pattern p = Pattern.compile(regEx);   
		Matcher m = p.matcher(str);
		return m.replaceAll("").trim();
  	}
  	
  	/**
	 * 获取字符串中的数字
	 * @param str
	 * @return
	 */
	public static String getNumFromStr(String str){
		str = str.trim();
		String str2 = "";
		if (str != null && !"".equals(str)) {
			for (int i = 0; i < str.length(); i++) {
				if (str.charAt(i) >= 48 && str.charAt(i) <= 57) {
					str2 += str.charAt(i);
				}
			}
		}
		return str2;
	}
}
